package my.edu.model.User.service;


import cn.hutool.json.JSONArray;
import com.baomidou.mybatisplus.extension.service.IService;
import my.edu.common.domain.PageDTO;
import my.edu.common.domain.PageVO;
import my.edu.model.User.entity.User;
import my.edu.model.User.entity.VO.LoginVO;
import my.edu.model.User.entity.VO.UserVO;
import my.edu.model.User.entity.dto.LoginDTO;
import my.edu.model.User.entity.dto.RegisterDTO;
import my.edu.model.User.entity.dto.UserDTO;
import my.edu.model.User.entity.dto.UserSearchDTO;

import java.security.NoSuchAlgorithmException;
import java.util.List;
import java.util.Map;

public interface IUserService extends IService<User> {


    LoginVO login(LoginDTO loginDTO) throws Exception;

    void register(RegisterDTO registerDTO);

    PageVO<UserVO> listAllUser(PageDTO page, UserSearchDTO userSearchDTO);

    void updateUser(UserDTO userDTO);

    void reUserPwd(Map<String, Object> id);

    UserVO getVOById(Long userId);

    void saveUser(UserDTO userDTO);

    void updateUserPwd(String oldpassword,String password);

    void setStatus(List<Long> ids, Integer status);

    JSONArray listAllUserOnly();

    void checkUser(Long id);

    String getPublicKey() throws NoSuchAlgorithmException;
}
